/*
 * DocsOpenDocDialog.java
 * 
 * Copyright (c) 2007
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.dcarew.googledocs.dialogs;

import org.dcarew.googledocs.DocsPlugin;
import org.dcarew.googledocs.utils.DocsUtils;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.dialogs.ListDialog;

import com.google.gdata.data.docs.DocumentListEntry;
import com.google.gdata.data.spreadsheet.SpreadsheetEntry;

/**
 * 
 * 
 * @author Devon Carew
 */
public class DocsOpenDocDialog
	extends ListDialog
{
	
	/**
	 * Create a new DocsOpenDocDialog.
	 * 
	 * @param parent
	 */
	public DocsOpenDocDialog(Shell parent, boolean openAsSpreadSheet)
	{
		super(parent);
		
		setTitle("Open Google " + (openAsSpreadSheet ? "Spreadsheet" : "Document"));
		setDefaultImage(DocsPlugin.getImage("icons/gdocs.gif"));
		setMessage("Select the " + (openAsSpreadSheet ? "spreadsheet" : "document") + " to open.");
		
		setAddCancelButton(true);
		setHelpAvailable(false);
		
		setLabelProvider(DocsUtils.createGoogleDocsLabelProvider());
		if (openAsSpreadSheet)
			setContentProvider(DocsUtils.createSpreadsheetContentProvider());
		else
			setContentProvider(DocsUtils.createDocumentsContentProvider());
		setInput(new Object());
	}
	
	public SpreadsheetEntry getResultAsSpreadSheet()
	{
		if (getResult() == null || getResult().length == 0)
			return null;
		
		return (SpreadsheetEntry)getResult()[0];
	}
	
	public DocumentListEntry getResultAsDocumentListEntry()
	{
		if (getResult() == null || getResult().length == 0)
			return null;
		
		return (DocumentListEntry)getResult()[0];
	}
	
}
